home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / yacc / flexyacc / aflex.lha / aflex / src / parse_goto.a < prev    next >
Text File  |  1991-05-16  |  3KB  |  231 lines

  1. package Parse_Goto is
  2.  
  3.     type Small_Integer is range -32_000 .. 32_000;
  4.  
  5.     type Goto_Entry is record
  6.         Nonterm  : Small_Integer;
  7.         Newstate : Small_Integer;
  8.     end record;
  9.  
  10.   --pragma suppress(index_check);
  11.  
  12.     subtype Row is Integer range -1 .. Integer'Last;
  13.  
  14.     type Goto_Parse_Table is array (Row range <>) of Goto_Entry;
  15.  
  16.     Goto_Matrix : constant Goto_Parse_Table :=
  17.        ((-1,-1)  -- Dummy Entry.
  18. -- State  0
  19. ,(-3, 1),(-2, 2)
  20. -- State  1
  21. ,(-4, 3)
  22. -- State  2
  23.  
  24. -- State  3
  25. ,(-8, 10)
  26. ,(-5, 9)
  27. -- State  4
  28.  
  29. -- State  5
  30.  
  31. -- State  6
  32.  
  33. -- State  7
  34.  
  35. -- State  8
  36.  
  37. -- State  9
  38. ,(-6, 12)
  39. -- State  10
  40.  
  41. -- State  11
  42.  
  43. -- State  12
  44. ,(-7, 14)
  45. -- State  13
  46. ,(-9, 15)
  47.  
  48. -- State  14
  49. ,(-18, 28),(-17, 26),(-16, 24),(-15, 25)
  50. ,(-12, 20),(-11, 18),(-10, 34)
  51. -- State  15
  52.  
  53. -- State  16
  54.  
  55. -- State  17
  56.  
  57. -- State  18
  58. ,(-18, 28)
  59. ,(-17, 26),(-16, 24),(-15, 25),(-12, 37)
  60.  
  61. -- State  19
  62. ,(-18, 28),(-17, 26),(-16, 24),(-15, 25)
  63. ,(-12, 40)
  64. -- State  20
  65. ,(-13, 42)
  66. -- State  21
  67.  
  68. -- State  22
  69.  
  70. -- State  23
  71. ,(-14, 45)
  72. -- State  24
  73. ,(-18, 28)
  74. ,(-17, 26),(-15, 48)
  75. -- State  25
  76. ,(-18, 28),(-17, 49)
  77.  
  78. -- State  26
  79.  
  80. -- State  27
  81.  
  82. -- State  28
  83.  
  84. -- State  29
  85.  
  86. -- State  30
  87. ,(-19, 54)
  88. -- State  31
  89. ,(-18, 28),(-17, 26),(-16, 24)
  90. ,(-15, 25),(-12, 55)
  91. -- State  32
  92.  
  93. -- State  33
  94. ,(-20, 56)
  95. -- State  34
  96.  
  97. -- State  35
  98.  
  99. -- State  36
  100.  
  101. -- State  37
  102. ,(-13, 60)
  103.  
  104. -- State  38
  105. ,(-18, 28),(-17, 26),(-16, 24),(-15, 25)
  106. ,(-12, 61)
  107. -- State  39
  108.  
  109. -- State  40
  110. ,(-13, 62)
  111. -- State  41
  112.  
  113. -- State  42
  114.  
  115. -- State  43
  116. ,(-18, 28),(-17, 26)
  117. ,(-15, 63)
  118. -- State  44
  119.  
  120. -- State  45
  121.  
  122. -- State  46
  123.  
  124. -- State  47
  125.  
  126. -- State  48
  127. ,(-18, 28),(-17, 49)
  128. -- State  49
  129.  
  130. -- State  50
  131.  
  132. -- State  51
  133.  
  134. -- State  52
  135.  
  136. -- State  53
  137.  
  138. -- State  54
  139.  
  140. -- State  55
  141.  
  142. -- State  56
  143.  
  144. -- State  57
  145. ,(-20, 72)
  146.  
  147. -- State  58
  148.  
  149. -- State  59
  150.  
  151. -- State  60
  152.  
  153. -- State  61
  154. ,(-13, 73)
  155. -- State  62
  156.  
  157. -- State  63
  158. ,(-18, 28),(-17, 49)
  159. -- State  64
  160.  
  161. -- State  65
  162.  
  163. -- State  66
  164.  
  165. -- State  67
  166.  
  167. -- State  68
  168.  
  169. -- State  69
  170.  
  171. -- State  70
  172.  
  173. -- State  71
  174.  
  175. -- State  72
  176.  
  177. -- State  73
  178.  
  179. -- State  74
  180.  
  181. -- State  75
  182.  
  183. -- State  76
  184.  
  185. -- State  77
  186.  
  187. -- State  78
  188.  
  189. -- State  79
  190.  
  191. -- State  80
  192.  
  193. -- State  81
  194.  
  195. -- State  82
  196.  
  197. );
  198. --  The offset vector
  199. GOTO_OFFSET : array (0.. 82) of Integer :=
  200. ( 0,
  201.  2, 3, 3, 5, 5, 5, 5, 5, 5, 6,
  202.  6, 6, 7, 8, 15, 15, 15, 15, 20, 25,
  203.  26, 26, 26, 27, 30, 32, 32, 32, 32, 32,
  204.  33, 38, 38, 39, 39, 39, 39, 40, 45, 45,
  205.  46, 46, 46, 49, 49, 49, 49, 49, 51, 51,
  206.  51, 51, 51, 51, 51, 51, 51, 52, 52, 52,
  207.  52, 53, 53, 55, 55, 55, 55, 55, 55, 55,
  208.  55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
  209.  55, 55);
  210.  
  211. subtype Rule        is Natural;
  212. subtype Nonterminal is Integer;
  213.  
  214.    Rule_Length : array (Rule range  0 ..  52) of Natural := ( 2,
  215.  5, 0, 5, 0, 2, 1, 1, 1,
  216.  3, 1, 1, 4, 0, 0, 4, 3,
  217.  3, 2, 2, 1, 1, 3, 3, 1,
  218.  1, 1, 0, 3, 2, 1, 2, 2,
  219.  1, 2, 2, 2, 6, 5, 4, 1,
  220.  1, 1, 3, 3, 1, 3, 4, 4,
  221.  2, 0, 2, 0);
  222.    Get_LHS_Rule: array (Rule range  0 ..  52) of Nonterminal := (-1,
  223. -2,-3,-4,-4,-4,-5,-8,-8,
  224. -9,-9,-9,-6,-6,-7,-10,-10,
  225. -10,-10,-10,-10,-10,-11,-14,-14,
  226. -14,-13,-13,-12,-12,-12,-16,-15,
  227. -15,-17,-17,-17,-17,-17,-17,-17,
  228. -17,-17,-17,-17,-17,-18,-18,-20,
  229. -20,-20,-19,-19);
  230. end Parse_Goto;
  231.